package com.wonders.module.auth.dao;

import java.util.List;
import java.util.Map;

import com.wonders.framework.dao.BaseDao;
import com.wonders.framework.entity.vo.Page;
import com.wonders.module.auth.entity.bo.User;
import com.wonders.module.auth.entity.vo.UserRoleVo;
import com.wonders.module.auth.entity.vo.UserVo;

/**
 * 用户信息数据层
 * 
 * @author WuBin
 * 
 */
public interface UserDao extends BaseDao {

	/**
	 * 获取用户信息
	 * 
	 * @param userVo
	 *            查询参数
	 * @return 用户信息
	 */
	public User getUser(UserVo userVo);

	/**
	 * 查询用户信息
	 * 
	 * @param userVo
	 *            查询参数
	 * @param page
	 *            分页参数
	 * @return 用户信息
	 */
	public Page query(UserVo userVo, Page page);

	/**
	 * 删除用户信息
	 * 
	 * @param keys
	 *            用户编号
	 */
	public void remove(List<Long> keys);

	/**
	 * 修改密码
	 * 
	 * @param keys
	 *            用户编号
	 * @param password
	 *            密码
	 */
	public void editPassword(List<Long> keys, String password);

	/**
	 * 用户信息是否存在
	 * 
	 * @param userVo
	 *            查询参数
	 * @return 是否存在
	 */
	public List<Map<String, Object>> isExist(UserVo userVo);

	/**
	 * 查询角色关联用户信息
	 * 
	 * @param userRoleVo
	 *            查询参数
	 * @param page
	 *            分页参数
	 * @return 角色关联用户信息
	 */
	public Page queryRoleUser(UserRoleVo userRoleVo, Page page);

}
